home *** CD-ROM | disk | FTP | other *** search
- @if-using not(ocl-file-trans-char)
- @use (ocl-file-trans-char)
- ;OCL{{{}}}
- ;OCL{{{ libs
- @if-using not(ocl-file-delchar) @lib delchar @fi
- ;OCL}}}
- ( defvar ( tcc tc-over ) )
- ;OCL{{{ transpose-characters
- ;OCL{{{ trans-char, without screen-off
- ( defmac tcc-do
- ( if test-view
- ( " )
- else
- ;OCL{{{ do it
- ( if in-prompt ( return-from-macro ) fi
- ;OCL{{{ save changed status
- set tcc counter test-file-changed
- ;OCL}}}
- if >(-(store-pos 1) 0)
- ;OCL{{{ try to do it
- (
- ;OCL{{{ save overwrite mode and insert mode
- set tc-over counter test-overwrite
- delete-mode-overwrite
- ;OCL}}}
- if last-message M_ERR_PO () fi
- backward-character
- "$
- if last-message M_ERR_PO
- ;OCL{{{ error
- ( forward-character )
- ;OCL}}}
- else
- ;OCL{{{ can write left from cursor
- ( forward-character
- forward-character
- "$
- backward-character
- undo-delete-character
- backward-character
- delete-previous-character
- backward-character
- undo-delete-character
- backward-character
- delete-previous-character
- forward-character
- forward-character
- forward-character
- delete-character
- delete-previous-character
- if >(tc-over 0) ( add-mode-overwrite ) fi
- return-from-macro
- )
- ;OCL}}}
- fi
- if >(tc-over 0) ( add-mode-overwrite ) fi
- )
- ;OCL}}}
- fi
- if >(tcc 0) ( set-file-unchanged ) fi
- message ( "[ M_ERR_PO "] )
- )
- ;OCL}}}
- fi
- )
- )
- ;OCL}}}
-
- ( deffun transpose-characters
- ( @if-using not( NO-SCR-OFF )
- screen-off
- @fi
- tcc-do
- @if-using not( NO-SCR-OFF )
- screen-on
- refresh-line
- if last-message M_ERR_PO ( message ( "[ M_ERR_PO "] ) ) fi
- @fi
- )
- )
- ;OCL}}}
- ( undeclare ( tcc tcc-do ) )
- @fi
-